package com.shuai.service;

import com.shuai.dto.ProjectDTO;
import com.shuai.dto.ProjectPageQueryDTO;
import com.shuai.entity.Project;
import com.shuai.result.PageResult;
import com.shuai.vo.ProjectVO;
import com.shuai.vo.VisualProjectVO;

import java.util.List;

public interface ProjectService {

    /**
     * 新增项目(包含团队、文件信息)
     * @param projectDTO
     */
    void saveWithFileAndTeam(ProjectDTO projectDTO);



    /**
     * 分页查询项目
     * @param projectPageQueryDTO
     * @return PageResult
     * */
    PageResult pageQuery(ProjectPageQueryDTO projectPageQueryDTO);



    /**
     *根据id查询项目信息
     * */
    ProjectVO getById(Long id);


    //TODO 业务逻辑调整（对files 和 relations 重新删除再插入）
    /**
     * 修改项目信息
     * */
    void update(ProjectDTO projectDTO);

    /**
     * 根据ids批量删除项目
     * @param ids
     */
    void deleteWithFileAndTeam(List<Long> ids);

    /**
     * 根据项目id删除项目
     * @param id
     */
    public void deleteWithFileAndTeamById(Long id);


    /**
     * 查询个人相关的项目信息
     * @param projectPageQueryDTO
     * @return
     */
    PageResult<VisualProjectVO> visualPageQuery(ProjectPageQueryDTO projectPageQueryDTO);
}
